package com.itbz.JSP;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/*请求转发案例   数据的生成，可以用servlet与jsp*/
/*需求：在Servlet中获取客户端浏览器所支持的语言，
并通过JSP页面将客户端浏览器所支持的语言响应给客户端浏览器。*/
/*1,继承HttpServlet  2,在web下创建jsp文件*/
@WebServlet("/language.do")   //注解
public class LanguageServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //获取客户端浏览器所支持的语言
        String header = req.getHeader("Accept-Language");
        //现在不是用纯文本在浏览器输出，而是通过jsp,将文字改为蓝色再在浏览器输出
        //将请求的内容放进request对象
        req.setAttribute("header",header);
        //使用请求转发跳转到jSP  现在项目里是相对路径，是有contextPath 如果没contextPath 就要在地址上加 /
        // 如果是web的其它的子目录 则是   子目录名称/xxx.jsp
        req.getRequestDispatcher("showMsg.jsp").forward(req,resp);
    }
}
 /*请求转发是服务端的一种请求方式，相当于在服务端中直接请求某个资源。

RequestDispatcher dispatcher = request.getRequestDispatcher("/test.jsp");

dispatcher.forward(request,response);

简写方式：
request.getRequestDispatcher("/test.jsp").forword(request,response);

客户端浏览器 ---request-->Web服务器里的Servlet---请求转发--->Web服务器里的xxx.jsp---Response--->传回客户端浏览器
(通过servlet进行数据的传递，由jsp进行视图的生成)
*/